home *** CD-ROM | disk | FTP | other *** search
/ Risc World 3 / Risc World 3.iso / SOFTWARE / ISSUE4 / ZAP / !Zap / Modules / !ZapTeX / Keys < prev    next >
Text File  |  2002-05-08  |  12KB  |  238 lines

  1. | LaTeX keymap (Richard Atterer)
  2. | Note that many symbols are only allowed when in math mode.
  3. | This keymap tries to produce better readable documents by not inserting
  4. | e.g. "\bullet{}", but "\bullet " and checking if the next key pressed
  5. | afterwards is Space, in which case the " " is replaced with "\ ".
  6. | There is support for users of the „german“ package.
  7. |
  8. | Press HOME to activate the extension keymap for the following keypress.
  9. |
  10. | Your Types file must initialise TeX_sp to 0 and TeX_de to 1 or 0, depending
  11. | on whether you use the german package or not. For example:
  12. |    LaTeX        &1ACA    TeX:SET (TeX_sp=0):SET (TeX_de=0)
  13. |
  14. | Note that this is currently done in !ZapTeX.!Setup. This isn't ideal, and
  15. | will be replaced in the future will a better method (hopefully).
  16.  
  17.         &800    &0    &1FF    TeX
  18.  
  19.         &000-1FF    *
  20. | Remove space at line end
  21. RETURN        &01D    IF ((@#TeX_sp) AND (@CHAROFF -1=32)):DELETE "PREV":ENDIF:SET (TeX_sp=0):RETURN
  22. | May have to insert \ before the space
  23. Space        &020  IF ((@#TeX_sp) AND (@CHAROFF -1=32)):DELETE "PREV":INSERT "\ ":ELSE:CHAR ' ':ENDIF:SET (TeX_sp=0)
  24. | ': If pressed twice and using german, enter "' (i.e. press '' to get “)
  25. ,        &027    IF ((@#TeX_de) AND (@CHAROFF -1=39) AND (@CHAROFF -2<>34)):DELETE "PREV":INSERT """'":ELSE:CHAR '''':ENDIF
  26. | Comma: If pressed twice and using german, enter "` (i.e. press ,, to get „)
  27. ,        &02C    IF ((@#TeX_de) AND (@CHAROFF -1=44)):DELETE "PREV":INSERT """`":ELSE:CHAR ',':ENDIF
  28. | Replace three dots with \ldots
  29. .        &02E    IF ((@CHAROFF -1=46) AND (@CHAROFF -2=46)):DELETE "PREV":DELETE "PREV":INSERT"\ldots ":SET (TeX_sp=1):ELSE:CHAR '.':ENDIF
  30. | cReturn inserts \\ before the RETURN
  31. cReturn        &13D    IF ((@#TeX_sp) AND (@CHAROFF -1=32)):DELETE "PREV":ENDIF:SET (TeX_sp=0):INSERT "\\":RETURN
  32.  
  33. HOME        &01E    KEYMAPN "TeX extras"
  34.  
  35. €        &080    INSERT "\surd ":SET (TeX_sp=1)
  36. Ŵ        &081    INSERT "\^{W}"
  37. ŵ        &082    INSERT "\^{w}"
  38. ◰        &083    BEEP
  39. ☓        &084    BEEP
  40. Ŷ        &085    INSERT "\^{Y}"
  41. ŷ        &086    INSERT "\^{y}"
  42.         &087    BEEP
  43. ⇦        &088    INSERT "\Leftarrow ":SET (TeX_sp=1)
  44. ⇨        &089    INSERT "\Rightarrow ":SET (TeX_sp=1)
  45. ⇩        &08A    INSERT "\Downarrow ":SET (TeX_sp=1)
  46. ⇧        &08B    INSERT "\Uparrow ":SET (TeX_sp=1)
  47. …        &08C    INSERT "\ldots ":SET (TeX_sp=1): REM(don't use '...')
  48. ™        &08D    INSERT "$^{\mathrm{TM}}$"
  49. ‰        &08E    INSERT "\kern-.05em\raise.5ex\hbox{\the\scriptfont0 0}\kern-.15em/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 00}"
  50. •        &08F    INSERT "\bullet ":SET (TeX_sp=1):REM(in German ,this‘ is correct, not ‘this’)
  51. ‘        &090    IF (@#TeX_de):INSERT "\glq ":SET (TeX_sp=1):ELSE:CHAR '`':ENDIF
  52. ’        &091    IF (@#TeX_de):INSERT "\grq ":SET (TeX_sp=1):ELSE:CHAR 39:ENDIF
  53. ‹        &092    INSERT "\flq ":SET (TeX_sp=1):REM(needs german)
  54. ›        &093    INSERT "\frq ":SET (TeX_sp=1):REM(needs german)
  55. “        &094    INSERT "``"
  56. ”        &095    IF (@#TeX_de):INSERT """'":ELSE:INSERT "''":ENDIF
  57. „        &096    IF (@#TeX_de):INSERT """`":ELSE:INSERT ",,":ENDIF
  58. –        &097    INSERT "--"
  59. —        &098    INSERT "---"
  60. −        &099    INSERT "$-$":REM(minus acc. to ISO)
  61. Œ        &09A    INSERT "\OE ":SET (TeX_sp=1)
  62. œ        &09B    INSERT "\oe ":SET (TeX_sp=1)
  63. †        &09C    INSERT "\dag ":SET (TeX_sp=1):REM(\dagger in math)
  64. ‡        &09D    INSERT "\ddag ":SET (TeX_sp=1):REM(\ddagger in math)
  65. fi        &09E    INSERT "fi"
  66. fl        &09F    INSERT "fl"
  67.          &0A0    INSERT "~":REM(non-breaking space)
  68. ¡        &0A1    INSERT "!`"
  69. ¢        &0A2    INSERT "$\not\!\mathrm{c}$":REM(yuk!-)
  70. £        &0A3    INSERT "\pounds ":SET (TeX_sp=1)
  71. ¤        &0A4    BEEP
  72. ¥        &0A5    BEEP
  73. ¦        &0A6    BEEP
  74. §        &0A7    INSERT "\S ":SET (TeX_sp=1)
  75. ¨        &0A8    INSERT "\""{}":LEFT
  76. ©        &0A9    INSERT "\copyright ":SET (TeX_sp=1)
  77. ª        &0AA    INSERT "$^{\mathrm{\underline{a}}}$"
  78. «        &0AB    INSERT """<":REM(needs german package)
  79. ¬        &0AC    INSERT "\neg ":SET (TeX_sp=1):REM(non-breaking hyphen)
  80. ­        &0AD    IF (@#TeX_de):INSERT """~":ELSE:CHAR '-':ENDIF
  81. ®        &0AE    INSERT "\hspace{.5em}\makebox[0pt]{$\bigcirc$}\makebox[0pt]{\scriptsize R}\hspace{.5em}"
  82. ¯        &0AF    INSERT "\rule[1.5ex]{.5em}{.1ex}"
  83. °        &0B0    INSERT "$^{\circ}$"
  84. ±        &0B1    INSERT "\pm ":SET (TeX_sp=1)
  85. ²        &0B2    INSERT "$^{2}$"
  86. ³        &0B3    INSERT "$^{3}$"
  87. ´        &0B4    INSERT "\'{}":LEFT
  88. µ        &0B5    INSERT "\mu ":SET (TeX_sp=1)
  89. ¶        &0B6    INSERT "\P ":SET (TeX_sp=1)
  90. ·        &0B7    INSERT "\cdot ":SET (TeX_sp=1)
  91. ¸        &0B8    INSERT "\c{}":LEFT
  92. ¹        &0B9    INSERT "$^{1}$"
  93. º        &0BA    INSERT "$^{\mathrm{\underline{o}}}$"
  94. »        &0BB    INSERT """>":REM(needs german package)
  95. ¼        &0BC    INSERT "$^{1\!\!}/\!_{4}$"
  96. ½        &0BD    INSERT "$^{1\!\!}/\!_{2}$"
  97. ¾        &0BE    INSERT "$^{3\!\!}/\!_{4}$"
  98. ¿        &0BF    INSERT "?`"
  99. À        &0C0    INSERT "\`{A}"
  100. Á        &0C1    INSERT "\'{A}"
  101.         &0C2    INSERT "\^{A}"
  102. à       &0C3    INSERT "\~{A}"
  103. Ä        &0C4    IF (@#TeX_de):INSERT """A":ELSE:INSERT "\""{A}":ENDIF
  104. Å        &0C5    INSERT "\AA ":SET (TeX_sp=1)
  105. Æ        &0C6    INSERT "\AE ":SET (TeX_sp=1)
  106. Ç        &0C7    INSERT "\c{C}"
  107. È        &0C8    INSERT "\`{E}"
  108. É        &0C9    INSERT "\'{E}"
  109. Ê        &0CA    INSERT "\^{E}"
  110. Ë        &0CB    INSERT "\""{E}"
  111. Ì        &0CC    INSERT "\`{I}"
  112. Í        &0CD    INSERT "\'{I}"
  113. Π       &0CE    INSERT "\^{I}"
  114. Ï        &0CF    INSERT "\""{I}"
  115. Р       &0D0    INSERT "\makebox[0pt][l]{\rule[.75ex]{.3em}{.1ex}}D"
  116. Ñ        &0D1    INSERT "\~{N}"
  117. Ò        &0D2    INSERT "\`{O}"
  118. Ó        &0D3    INSERT "\'{O}"
  119. Ô        &0D4    INSERT "\^{O}"
  120. Õ        &0D5    INSERT "\~{O}"
  121. Ö        &0D6    IF (@#TeX_de):INSERT """O":ELSE:INSERT "\""{O}":ENDIF
  122. ×        &0D7    INSERT "\times ":SET (TeX_sp=1)
  123. Ø        &0D8    INSERT "\O ":SET (TeX_sp=1)
  124. Ù        &0D9    INSERT "\`{U}"
  125. Ú        &0DA    INSERT "\'{U}"
  126. Û        &0DB    INSERT "\^{U}"
  127. Ü        &0DC    IF (@#TeX_de):INSERT """U":ELSE:INSERT "\""{U}":ENDIF
  128. Ý        &0DD    INSERT "\'{Y}"
  129. Þ        &0DE    BEEP
  130. ß        &0DF    IF (@#TeX_de):INSERT """s":ELSE:INSERT "\ss ":ENDIF
  131. à        &0E0    INSERT "\`{a}"
  132. á        &0E1    INSERT "\'{a}"
  133. â        &0E2    INSERT "\^{a}"
  134. ã        &0E3    INSERT "\~{a}"
  135. ä        &0E4    IF (@#TeX_de):INSERT """a":ELSE:INSERT "\""{a}":ENDIF
  136. å        &0E5    INSERT "\aa ":SET (TeX_sp=1)
  137. æ        &0E6    INSERT "\ae ":SET (TeX_sp=1)
  138. ç        &0E7    INSERT "\c{c}"
  139. è        &0E8    INSERT "\`{e}"
  140. é        &0E9    INSERT "\'{e}"
  141. ê        &0EA    INSERT "\^{e}"
  142. ë        &0EB    INSERT "\""{e}"
  143. ì        &0EC    INSERT "\`{\i}"
  144. í        &0ED    INSERT "\'{\i}"
  145. î        &0EE    INSERT "\^{\i}"
  146. ï        &0EF    INSERT "\""{\i}"
  147. ð        &0F0    BEEP
  148. ñ        &0F1    INSERT "\~{n}"
  149. ò        &0F2    INSERT "\`{o}"
  150. ó        &0F3    INSERT "\'{o}"
  151. ô        &0F4    INSERT "\^{o}"
  152. õ        &0F5    INSERT "\~{o}"
  153. ö        &0F6    IF (@#TeX_de):INSERT """o":ELSE:INSERT "\""{o}":ENDIF
  154. ÷        &0F7    INSERT "\div ":SET (TeX_sp=1)
  155. ø        &0F8    INSERT "\o ":SET (TeX_sp=1)
  156. ù        &0F9    INSERT "\`{u}"
  157. ú        &0FA    INSERT "\'{u}"
  158. û        &0FB    INSERT "\^{u}"
  159. ü        &0FC    IF (@#TeX_de):INSERT """u":ELSE:INSERT "\""{u}":ENDIF
  160. ý        &0FD    INSERT "\'{y}"
  161. þ        &0FE    BEEP
  162. ÿ        &0FF    INSERT "\""{y}"
  163.  
  164. | LaTeX keymap extensions
  165. | Available after the HOME key has been pressed.
  166. | Note: Many keypresses act differently if there is a selection, making it
  167. |    the argument of the command they generate.
  168.  
  169.         &800    &27    &132    TeX extras
  170.  
  171. '        &027    IF (@#TeX_de):INSERT "\grq ":SET (TeX_sp=1):ELSE:LATEX_QUOTE:ENDIF
  172. (        &028    INSERT "\(\)":LEFT:LEFT
  173. ,        &02C    IF (@#TeX_de):INSERT "\glq ":SET (TeX_sp=1):ELSE:LATEX_QUOTE:ENDIF
  174.  
  175. | lowercase letters: similar to HTML keymap in some places
  176. b        &062    IF (@SELHERE):CUT:INSERT "\textbf{":PASTE:CHAR '}':ELSE:INSERT "\textbf{}":LEFT:ENDIF
  177. c        &063    IF (@SELHERE):CUT:INSERT "\textsc{":PASTE:CHAR '}':ELSE:INSERT "\textsc{}":LEFT:ENDIF
  178. d        &064    IF (@SELHERE):CUT:INSERT "\index{":PASTE:CHAR '}':ELSE:INSERT "\index{}":LEFT:ENDIF
  179. e        &065    IF (@SELHERE):CUT:INSERT "\emph{":PASTE:CHAR '}':ELSE:INSERT "\emph{}":LEFT:ENDIF
  180. f        &066    INSERT "%":RETURNNOINDENT:INSERT "\footnote{}":LEFT
  181. i        &069    INSERT "\item ":REM(list item)
  182. l        &06C    IF (@SELHERE):CUT:INSERT "\label{":PASTE:CHAR '}':ELSE:INSERT "\label{}":LEFT:ENDIF
  183. n        &06E    INSERT "\\":RETURN
  184. o        &06F    LATEX_ENVIRONMENT "enumerate":INSERT "  ":REM(ordered list)
  185. p        &070    IF (@SELHERE):CUT:INSERT "\pageref{":PASTE:CHAR '}':ELSE:INSERT "\pageref{}":LEFT:ENDIF
  186. q        &071    LATEX_ENVIRONMENT "quote"
  187. r        &072    IF (@SELHERE):CUT:INSERT "\ref{":PASTE:CHAR '}':ELSE:INSERT
  188.  "\ref{}":LEFT:ENDIF
  189. s        &073    IF (@SELHERE):CUT:INSERT "\textsf{":PASTE:CHAR '}':ELSE:INSERT "\textsf{}":LEFT:ENDIF
  190. t        &074    IF (@SELHERE):CUT:INSERT "\texttt{":PASTE:CHAR '}':ELSE:INSERT "\texttt{}":LEFT:ENDIF
  191. u        &075    LATEX_ENVIRONMENT "itemize":INSERT "  ":REM(unordered list)
  192. v        &076    LATEX_ENVIRONMENT "verbatim"
  193. x        &078    LATEX_ENVIRONMENT
  194.  
  195. | 1 to 5: section etc.
  196. 1        &031    RETURNNOINDENT:INSERT "\section{}":RETURN:LEFT:LEFT
  197. 2        &032    RETURNNOINDENT:INSERT "\subsection{}":RETURN:LEFT:LEFT
  198. 3        &033    RETURNNOINDENT:INSERT "\subsubsection{}":RETURN:LEFT:LEFT
  199. 4        &034    RETURNNOINDENT:INSERT "\paragraph{}":RETURN:LEFT:LEFT
  200. 5        &035    RETURNNOINDENT:INSERT "\subparagraph{}":RETURN:LEFT:LEFT
  201. | shift 1 to 2: forward to next (sub)section
  202. | Attempts to support German layout keyboards too.
  203. ! (s1)        &021    LATEX_NEXTSECTION
  204. @ (s2)        &040    LATEX_NEXTSUBSECTION
  205. quote (ger-s2)    &022    IF (@#TeX_de):LATEX_NEXTSUBSECTION:ELSE:LATEX_QUOTE
  206. :ENDIF
  207. | ctrl 1 to 2: back to previous (sub)section
  208. c1        &131    LATEX_PREVSECTION
  209. c2        &132    LATEX_PREVSUBSECTION
  210.  
  211. | uppercase A to Z: macros defined in the document
  212. A        &041    DROPMARK:SEARCHBACK "% key A: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  213. B        &042    DROPMARK:SEARCHBACK "% key B: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  214. C        &043    DROPMARK:SEARCHBACK "% key C: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  215. D        &044    DROPMARK:SEARCHBACK "% key D: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  216. E        &045    DROPMARK:SEARCHBACK "% key E: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  217. F        &046    DROPMARK:SEARCHBACK "% key F: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  218. G        &047    DROPMARK:SEARCHBACK "% key G: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  219. H        &048    DROPMARK:SEARCHBACK "% key H: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  220. I        &049    DROPMARK:SEARCHBACK "% key I: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  221. J        &04A    DROPMARK:SEARCHBACK "% key J: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  222. K        &04B    DROPMARK:SEARCHBACK "% key K: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  223. L        &04C    DROPMARK:SEARCHBACK "% key L: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  224. M        &04D    DROPMARK:SEARCHBACK "% key M: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  225. N        &04E    DROPMARK:SEARCHBACK "% key N: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  226. O        &04F    DROPMARK:SEARCHBACK "% key O: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  227. P        &050    DROPMARK:SEARCHBACK "% key P: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  228. Q        &051    DROPMARK:SEARCHBACK "% key Q: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  229. R        &052    DROPMARK:SEARCHBACK "% key R: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  230. S        &053    DROPMARK:SEARCHBACK "% key S: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  231. T        &054    DROPMARK:SEARCHBACK "% key T: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  232. U        &055    DROPMARK:SEARCHBACK "% key U: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  233. V        &056    DROPMARK:SEARCHBACK "% key V: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  234. W        &057    DROPMARK:SEARCHBACK "% key W: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  235. X        &058    DROPMARK:SEARCHBACK "% key X: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  236. Y        &059    DROPMARK:SEARCHBACK "% key Y: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  237. Z        &05A    DROPMARK:SEARCHBACK "% key Z: ":CLEARSEL:SELREGION:CRIGHT:ESCAPE:LASTMARK:COPYSEL:CLEARSEL:IF (@CHAROFF -1 = 32):SET (TeX_sp=1):ENDIF
  238.